/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Reeks5.VanRansbeeck.Kevin.Model.States.Player;

import Reeks5.VanRansbeeck.Kevin.Model.States.Game.SpelStateContext;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author sonicah
 */
public class BetState implements PokerSpelerState{

    public String getStatus() {
        return "BET";
    }

    public void fold(PlayerStateContext aThis, SpelStateContext spelstate) {
        // kan alleen als iemand anders geraised heeft/allin gegaan is
        aThis.setStatus(new FoldState());
    }

    public void raise(PlayerStateContext aThis, SpelStateContext spelstate, int value) {
        try {
            throw new IllegalAccessException("You made your bet... geen raise meer mogelijk");
        } catch (IllegalAccessException ex) {
            Logger.getLogger(BetState.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void call(PlayerStateContext aThis, SpelStateContext spelstate, int value) {
        // kan alleen als iemand anders geraised heeft/allin gegaan is
        aThis.setValue(value);
        aThis.setStatus(new CallState());
    }

    public void allin(PlayerStateContext aThis, SpelStateContext spelstate, int value) {
        // kan alleen als iemand anders geraised heeft/allin gegaan is
        aThis.setValue(value);
        aThis.setStatus(new AllinState());
    }

    public void check(PlayerStateContext aThis, SpelStateContext spelstate) {
        try {
            throw new IllegalAccessException("You made your bet... kunt nu niet meer checken");
        } catch (IllegalAccessException ex) {
            Logger.getLogger(BetState.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void reset(PlayerStateContext aThis, SpelStateContext spelstate) {
        // als er een winnaar is
        aThis.setStatus(new NewState());
    }

    public void bet(PlayerStateContext aThis, SpelStateContext spelstate, int value) {
        try {
            throw new IllegalAccessException("Twee bets na elkaar kunnen niet");
        } catch (IllegalAccessException ex) {
            Logger.getLogger(BetState.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
